package com.nenude.corejava.ch7;

public class Outer {
	private int id=11;
	private String name="outter";
	
	public void printOuter(){
		System.out.println(id+"  in out: "+name );
	
		//内部类可以直接在外部类中使用，用于完成特定功能
		Inner inner=new Inner();
	    inner.printInner();
	
	
	}
	
	//内部类：在实际中经常被定义为私有的，只在外部类中使用，用于完成特定功能
	private class Inner{
		private int id=101;
		private String name="inner";
		
		public void printInner(){
			//在内部类中可以直接使用外部类的属性和方法
			//在内部类中，如果有变量与外部类的名称相同，优先使用内部类的变量
			int innerId=id;
			String innerNameString=name;
			System.out.println(innerId+"in out: "+innerNameString );
			printOuter();
		}//end inner
	}
	
	
	
	public Outer() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Outer(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	

}
